92de94906fc6e467302fb06ec6e75f81e9f66321,src/test/java/de/ids_mannheim/korap/index/TestRegexWildcardIndex.java,TestRegexWildcardIndex,indexRegexCaseInsensitive,#,163
Before Change
ki.commit();
QueryBuilder kq = new QueryBuilder("base");
SpanQuery sq = kq.re("s:Af*e", true).toQuery();
assertEquals("SpanMultiTermQueryWrapper(base:/i:af*e/)", sq.toString());
Krill ks = new Krill(sq);
ks.getMeta().getContext().left.setToken(true).setLength(1);
ks.getMeta().getContext().right.setToken(true).setLength(1);
Result kr = ki.search(ks);
assertEquals((long) 2, kr.getTotalResults());
assertEquals("[AfFe] aFfFE ...", kr.getMatch(0).getSnippetBrackets());
assertEquals("AfFe [aFfFE] Baum ...", kr.getMatch(1)
.getSnippetBrackets());
kr = ki.search(ks.setSpanQuery(new QueryBuilder("base").re("s:Af.*e")
.toQuery()));
assertEquals((long) 1, kr.getTotalResults());
assertEquals("[AfFe] aFfFE ...", kr.getMatch(0).getSnippetBrackets());
kr = ki.search(ks.setSpanQuery(new QueryBuilder("base").re("s:baum.*",
true).toQuery()));
assertEquals((long) 2, kr.getTotalResults());
assertEquals("... aFfFE [Baum] Baumgarten ...", kr.getMatch(0)
.getSnippetBrackets());
assertEquals("... Baum [Baumgarten] SteinGarten ...", kr.getMatch(1)
.getSnippetBrackets());
kr = ki.search(ks.setSpanQuery(new QueryBuilder("base").re(
"s:.*garten", true).toQuery()));
assertEquals((long) 2, kr.getTotalResults());
assertEquals("... Baum [Baumgarten] SteinGarten ...", kr.getMatch(0)
.getSnippetBrackets());
assertEquals("... Baumgarten [SteinGarten] franZ ...", kr.getMatch(1)
.getSnippetBrackets());
kr = ki.search(ks.setSpanQuery(new QueryBuilder("base").re(
"s:.*garten", false).toQuery()));
assertEquals((long) 1, kr.getTotalResults());
assertEquals("... Baum [Baumgarten] SteinGarten ...", kr.getMatch(0)
.getSnippetBrackets());
kr = ki.search(ks.setSpanQuery(new QueryBuilder("base").re("s:ha.s",
true).toQuery()));
assertEquals((long) 2, kr.getTotalResults());
assertEquals("... franZ [HaNs] Haus ...", kr.getMatch(0)
.getSnippetBrackets());
assertEquals("... HaNs [Haus] Efeu ...", kr.getMatch(1)
.getSnippetBrackets());
kr = ki.search(ks.setSpanQuery(new QueryBuilder("base").re("s:.*f*e",
true).toQuery()));
assertEquals((long) 3, kr.getTotalResults());
assertEquals("[AfFe] aFfFE ...", kr.getMatch(0).getSnippetBrackets());
assertEquals("AfFe [aFfFE] Baum ...", kr.getMatch(1)
After Change
@Test
public void indexRegexCaseInsensitive () throws Exception {
KrillIndex ki = new KrillIndex();
// abcabcabac
FieldDocument fd = new FieldDocument();
fd.addTV(
"base",
"AfFe aFfFE Baum Baumgarten SteinGarten franZ HaNs Haus Efeu effe",
"[(0-4)s:AfFe|i:affe|_0$<i>0<i>4|-:t$<i>10]"
+ "[(5-10)s:aFfFE|i:afffe|_1$<i>5<i>10]"
+ "[(11-15)s:Baum|i:baum|_2$<i>11<i>15]"
+ "[(16-26)s:Baumgarten|i:baumgarten|_3$<i>16<i>26]"
+ "[(27-38)s:SteinGarten|i:steingarten|_4$<i>27<i>38]"
+ "[(39-44)s:franZ|i:franz|_5$<i>39<i>44]"
+ "[(45-49)s:HaNs|i:hans|_6$<i>45<i>49]"
+ "[(50-54)s:Haus|i:haus|_7$<i>50<i>54]"
+ "[(55-59)s:Efeu|i:efeu|_8$<i>55<i>59]"
+ "[(60-64)s:effe|i:effe|_9$<i>60<i>64]");
ki.addDoc(fd);
ki.commit();
QueryBuilder kq = new QueryBuilder("base");
SpanQueryWrapper sqw = kq.re("s:Af*e", true);
assertEquals("SpanMultiTermQueryWrapper(base:/i:af*e/)", sqw.toQuery().toString());
Krill ks = _newKrill(sqw);
Result kr = ki.search(ks);
assertEquals((long) 2, kr.getTotalResults());
assertEquals("[AfFe] aFfFE ...", kr.getMatch(0).getSnippetBrackets());
assertEquals("AfFe [aFfFE] Baum ...", kr.getMatch(1)
.getSnippetBrackets());
ks = _newKrill(new QueryBuilder("base").re("s:Af.*e"));
kr = ki.search(ks);
assertEquals((long) 1, kr.getTotalResults());
assertEquals("[AfFe] aFfFE ...", kr.getMatch(0).getSnippetBrackets());
ks = _newKrill(new QueryBuilder("base").re("s:baum.*",
true));
kr = ki.search(ks);
assertEquals((long) 2, kr.getTotalResults());
assertEquals("... aFfFE [Baum] Baumgarten ...", kr.getMatch(0)
.getSnippetBrackets());
assertEquals("... Baum [Baumgarten] SteinGarten ...", kr.getMatch(1)
.getSnippetBrackets());
ks = _newKrill(new QueryBuilder("base").re(
"s:.*garten", true));
kr = ki.search(ks);
assertEquals((long) 2, kr.getTotalResults());
assertEquals("... Baum [Baumgarten] SteinGarten ...", kr.getMatch(0)
.getSnippetBrackets());
assertEquals("... Baumgarten [SteinGarten] franZ ...", kr.getMatch(1)
.getSnippetBrackets());
ks = _newKrill(new QueryBuilder("base").re("s:.*garten", false));
kr = ki.search(ks);
assertEquals((long) 1, kr.getTotalResults());
assertEquals("... Baum [Baumgarten] SteinGarten ...", kr.getMatch(0)
.getSnippetBrackets());
ks = _newKrill(new QueryBuilder("base").re("s:ha.s",
true));
kr = ki.search(ks);
assertEquals((long) 2, kr.getTotalResults());
assertEquals("... franZ [HaNs] Haus ...", kr.getMatch(0)
.getSnippetBrackets());
assertEquals("... HaNs [Haus] Efeu ...", kr.getMatch(1)
.getSnippetBrackets());
ks = _newKrill(new QueryBuilder("base").re("s:.*f*e",
true));
kr = ki.search(ks);
assertEquals((long) 3, kr.getTotalResults());
assertEquals("[AfFe] aFfFE ...", kr.getMatch(0).getSnippetBrackets());
assertEquals("AfFe [aFfFE] Baum ...", kr.getMatch(1)